/**
 *
 * APDPlat - Application Product Development Platform Copyright (c) 2013, 杨尚川,
 * yang-shangchuan@qq.com
 *
 * This program is free software: you can redistribute it and/or modify it under
 * the terms of the GNU General Public License as published by the Free Software
 * Foundation, either version 3 of the License, or (at your option) any later
 * version.
 *
 * This program is distributed in the hope that it will be useful, but WITHOUT
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
 * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
 * details.
 *
 * You should have received a copy of the GNU General Public License along with
 * this program. If not, see <http://www.gnu.org/licenses/>.
 *
 */

package org.apdplat.superword.rule;

import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.HashMap;
import java.util.Map;

/**
 * 词性
 * @author 杨尚川
 */
public class PartOfSpeech {
    private PartOfSpeech(){}
    private static final Logger LOGGER = LoggerFactory.getLogger(PartOfSpeech.class);
    private static final Map<String, String> pos = new HashMap<>();
    static {
        try(BufferedReader reader = new BufferedReader(
                new InputStreamReader(
                        PartOfSpeech.class.getResourceAsStream(
                                "/part_of_speech_des.txt")))){
            String line = null;
            while((line=reader.readLine()) != null) {
                LOGGER.info("解析：{}",line);
                line = line.trim();
                if(StringUtils.isNotBlank(line)
                        && !line.startsWith("#")){
                    String[] attrs = line.split("=");
                    if(attrs!=null && attrs.length==2){
                        pos.put(attrs[0], attrs[1]);
                        LOGGER.info("{}={}",attrs[0],attrs[1]);
                    }
                }
            }
        }catch (Exception e){
            LOGGER.error("初始化词性失败", e);
        }
        LOGGER.info("初始化词性完毕，词性数：{}",pos.size());
    }

    public static String getMeaning(String partOfSpeech){
        return pos.get(partOfSpeech);
    }

    public static void main(String[] args) {
        System.out.println(PartOfSpeech.getMeaning("V"));
    }
}
